import com.mysql.jdbc.Connection;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javafx.scene.Scene;

import javax.sql.DataSource;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * @Author @fiber-cloud
 * @Date 2025/10/24 15:36
 */
public class JDBCInsertDemo {
    public static void main(String[] args) throws SQLException {
        // 使用jdbc往数据库中，插入一个记录
        // 需要提前准备好数据库(java106和数据表(student


        // 1.创建一个数据源，描述了数据库服务器在哪里
        MysqlDataSource dataSource = new MysqlDataSource();

        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java106?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("869896");


        // 2.和数据库建立网络链接
        Connection connection = (Connection) dataSource.getConnection();

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学号：");
        int id = scanner.nextInt();
        System.out.println("请输入姓名：");
        String name = scanner.next();

        // 3.构造sql语句，完成插入操作
        String sql = "insert into student values(?,?)";
        //jdbc中还需要一个特殊对象，来描述这里sql的情况
        PreparedStatement statement = connection.clientPrepareStatement(sql);
        statement.setInt(1 , id);
        statement.setString(2 , name);
        System.out.println("sql："+ statement);


        // 4.执行sql语句，针对增，删，改，使用executeUpdate来执行
        //              针对查 ，使用 executeQuery 来执行
        // 客服端给服务器发送请求
        int ret = statement.executeUpdate();
        System.out.println("ret = "+ ret);
        // 5.断开连接，释放资源   连接本质上，是找个地方记录一下“和谁建立连接了”
        // 当连接不再使用时，就需要释放连接，把之前的记录给“擦除掉”
        statement.close();
        connection.close();
    }


}
